Method of determining operation input using game controller including acceleration detector

ABSTRACT

A game controller including an acceleration sensor capable of detecting accelerations along three axial directions is moved to draw a figure pattern in a space. The positions p i  of the moving path are derived from the acceleration sampled during the movement, and a path function and an approximate plane are calculated from the positions p i . An image obtained by observing the approximate plane in the normal direction is generated as a path image. The path image data is pattern-matched with reference pattern data to select a reference pattern with the highest degree of conformity, and the operation of a player character is controlled based on a magic actuation operation input instruction associated with the selected reference pattern.

Japanese Patent Application No. 2006-326372 filed on Dec. 1, 2006, ishereby incorporated by reference in its entirety.

BACKGROUND OF THE INVENTION

The present invention relates to a program which causes a computer toexecute a specific game and the like.

Consumer game devices generally include a game controller (also referredto as “game pad”) having elements such as a push button switch and ananalog lever. In a well-known style, a player holds a game controllerwith both hands in front of a video display, and plays a game byinputting various game operations with the fingers.

As a method which enables an operation input without directly operatinga push button switch, an analog lever, and the like, a method is knownin which the movement of a finger is photographed so that an operationinput can be performed based on the moving path of the finger(JP-A-2004-94653, for example). Specifically, JP-A-2004-94653 disclosesa method utilizing a system provided with a camera device which canmeasure the distance between the camera device and a target object and adisplay which allows the user to visually observe the input result,wherein the finger tip region of the user is estimated from an imagephotographed using the camera device, and the distance between thefinger tip and an information input plane is then estimated. The systemdetermines that the user is inputting an operation when it is estimatedthat the finger tip comes in contact with the information input plane,and determines that the user is not inputting an operation when it isestimated that the finger tip does not come in contact with theinformation input plane, thereby enabling the user to input arbitrarypath information by a natural and easy operation.

In many video games (particularly a role-playing game (RPG)), it is animportant factor to allow a player to be sufficiently involved with aplayer character. When employing an operation input using a push buttonswitch or an analog lever, since the actual input operation (e.g.,pressing the switch or operating the lever) differs from the operationof the player character in the game caused by the input operation, theplayer cannot be sufficiently involved with the player character.

The technology disclosed in JP-A-2004-94653 may be used to deal withsuch a demand. The path information of a target object such as a fingertip can be input using the technology disclosed in JP-A-2004-94653.Specifically, the movement of an object can be used to input a gameoperation. However, since the technology disclosed in JP-A-2004-94653requires a large system, it is difficult to apply this technology toconsumer game devices for which a reduction in cost is demanded.

On the other hand, along with a recent reduction in cost and size ofacceleration sensors, a game controller including an acceleration sensorhas been developed and put to practical use. In this case, theacceleration sensor detects acceleration along with the movement of thegame controller, and a detection signal is output to the main body ofthe consumer game device and can be used for a game.

SUMMARY

According to one aspect of the invention, there is provided a method ofdetermining an operation input using a game controller including anacceleration detector, the method comprising:

calculating a moving path of the game controller based on accelerationinformation detected by the acceleration detector when a player movesthe game controller to change a position of the game controller in areal space; and

controlling a process of a game based on the calculated moving path.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING

FIG. 1 is a system configuration diagram showing a configuration exampleof a consumer game device.

FIG. 2 is a schematic view showing a game play style.

FIGS. 3A to 3C are views showing examples of a magic figure patternwhich causes a player character to practice magic.

FIG. 4 is a schematic view illustrative of the principle of a magicactuation operation input.

FIG. 5 is a schematic view illustrative of the principle of a magicactuation operation input, wherein positions p_(i) on a moving path arecalculated in time series.

FIG. 6 is a schematic view illustrative of the principle of a magicactuation operation input, wherein a process of handling a moving pathas a two-dimensional figure is shown.

FIG. 7 is a functional block diagram showing an example of a functionalconfiguration.

FIG. 8 is a data configuration diagram showing an example of the dataconfiguration of reference pattern data.

FIG. 9 is a data configuration diagram showing a data configurationexample of damage TBL data.

FIG. 10 is a data configuration diagram showing a data configurationexample of sampling data.

FIG. 11 is a flowchart illustrative of the flow of a process.

FIG. 12 is a flowchart illustrative of the flow of a moving pathcalculation process.

FIG. 13 is a flowchart illustrative of the flow of an operation inputinstruction determination process.

FIGS. 14A and 14B are schematic views showing a game play state example.

FIGS. 15A and 15B are views showing variations of a magic actuationoperation input.

FIG. 16 is a view illustrative of a hardware configuration whichimplements a consumer game device.

FIGS. 17A to 17C are views showing modifications of a figure patternwhich causes a player character to practice magic.

FIGS. 18A and 18B are schematic views when using a modification of avariable parameter.

FIGS. 19A and 19B are schematic views when using another modification ofa variable parameter.

DETAILED DESCRIPTION OF THE EMBODIMENT

The invention may enable an operation input to be performed by moving agame controller including an acceleration sensor.

According to one embodiment of the invention, there is provided a methodof determining an operation input using a game controller including anacceleration detector, the method comprising:

calculating a moving path of the game controller based on accelerationinformation detected by the acceleration detector when a player movesthe game controller to change a position of the game controller in areal space; and

controlling a process of a game based on the calculated moving path.

According to another embodiment of the invention, there is provided agame device comprising:

a game controller including an acceleration detector;

a moving path calculation section that calculates a moving path of thegame controller based on acceleration information detected by theacceleration detector when a player moves the game controller to changea position of the game controller in a real space; and

a game process control section that controls a process of a game basedon the calculated moving path.

According to the above configuration, when the game controller includingthe acceleration detector is moved to change the present position of thegame controller, the moving path of the game controller is calculatedbased on the acceleration information detected by the accelerationdetector. The moving path of the game controller can be utilized in thegame.

Moreover, the process of the game can be controlled based on thecalculated moving path. Specifically, the operation of moving the gamecontroller can be acquired as the moving path, and the game can becaused to proceed based on the moving path.

The method may further includes:

determining an operation input instruction from a plurality of operationinput instructions based on the calculated moving path; and

executing a process based on the determined operation input instruction.

According to the above configuration, the game operation can be input bydrawing the moving path. For example, in a game in which a wizard(player character) draws a seal (formed of a single figure or acombination of a plurality of figures or characters) by waving a magicwand to practice magic, the path of the magic wand corresponds to themoving path. Therefore, when the magic actuation operation inputinstruction is determined based on the moving path, the wizard charactercan be caused to practice magic based on the moving path using the gamecontroller.

In the method, the determining of the operation input instruction mayinclude: selecting path reference data conforming to the calculatedmoving path from a plurality of pieces of path reference datarespectively associated with the plurality of operation inputinstructions; and determining that the operation input instructionassociated with the selected path reference data has been issued.

The path reference data refers to data which defines a path as areference. For example, the path reference data refers to data fromwhich a path can be derived (e.g., function indicating the path, imageobtained by photographing the path in one direction, or vector data ofthe entirety or part of the path) or data such as a representative valueindicating the characteristics of the path.

According to the above configuration, the path reference data isrespectively associated with each of the operation input instructions,and the operation input instruction can be selected from the operationinput instructions by selecting the path reference data corresponding tothe calculated moving path. This enables the moving path to be selectedfrom a number of moving paths, whereby the variations of the operationinput which can be performed by inputting the moving path can beincreased.

In the method,

each of the plurality of operation input instructions may be aninstruction that directs a predetermined process based on a givenvariable parameter;

the determining the operation input instruction may include calculatinga degree of conformity between the calculated moving path and each ofthe plurality of pieces of path reference data, and selecting pathreference data from the plurality of pieces of path reference data basedon the calculation result; and

the executing the process may include executing the process based on thedetermined operation input instruction while changing the variableparameter depending on the calculated degree of conformity of theselected path reference data.

The term “degree of conformity” used herein refers to the degree ofsimilarity (degree of approximation or degree of probability) between asample and the reference data.

According to the above configuration, the variable parameter is changeddepending on the degree of conformity between the moving path and thepath reference data, and the operation input instruction correspondingto the path reference data is executed depending on the variableparameter which has been changed. Therefore, the player's skill ofdrawing a moving path by moving the game controller can be reflected inthe game. For example, when the movement of the game controller isconsidered to be the operation of a magic wand possessed by a wizardcharacter and a magic actuation operation input is performed byutilizing the moving path, the degree of magic is determined by themovement of the magic wand, whereby the player is further involved inthe wizard character.

The method may further include executing a process based on apredetermined operation input instruction when the calculated movingpath coincides with a predetermined path.

According to the above configuration, the operation input can beperformed by utilizing the moving path. For example, when a wizard(player character) draws a seal by waving a magic wand to practicemagic, the path of the magic wand corresponds to the moving path.Therefore, when the magic actuation operation input instruction isdetermined based on the moving path, the wizard character can be causedto practice magic based on the moving path using the game controller.

In the method,

each of the plurality of operation input instructions may be aninstruction that directs a predetermined process based on a givenvariable parameter;

the method may further include calculating a size of the entirecalculated moving path; and

the executing the process may include executing the process based on thedetermined operation input instruction while changing the variableparameter depending on the calculated size of the entire moving path.

According to the above configuration, the process performed based on theoperation input instruction associated with the moving path can bechanged by changing the size of the moving path. Therefore, thevariations of the operation input which can be performed by inputtingthe moving path can be increased, whereby game operability can beincreased.

In the method,

each of the plurality of operation input instructions may be aninstruction that directs a predetermined process based on a givenvariable parameter;

the moving path may be calculated by calculating a moving path in athree-dimensional coordinate system based on a direction of the gamecontroller;

the method may further include determining a direction of the entiremoving path from the calculated moving path in the three-dimensionalcoordinate system; and

the executing the process may include executing the process based on thedetermined operation input instruction while changing the variableparameter depending on the determined direction of the entire movingpath.

In the method,

the moving path may be calculated by calculating a moving path in athree-dimensional coordinate system based on a direction of the gamecontroller;

the method may further include determining a direction of the entiremoving path from the calculated moving path in the three-dimensionalcoordinate system; and

the determining the operation input instruction may include determiningthe operation input instruction based on the calculated moving path andthe determined direction of the entire moving path.

The term “direction of the entire moving path” used herein refers to adirection which represents a figure when the entire moving path isconsidered to be one figure. For example, the term “direction of theentire moving path” refers to the direction of a portion of theperiphery of the figure differing from the remaining portion (e.g.,removed portion, protrusion, or curved portion of a linear shape), thedirection of the representative figure, the axial direction of thefigure (e.g., axis of rotation or axis of symmetry), or the direction ofan approximate plane obtained by approximating the figure to one plane.

According to the above configuration, the process performed based on theoperation input instruction associated with the moving path can bechanged depending on the direction of the entire moving path in thethree-dimensional coordinate system based on the direction of the gamecontroller. For example, when the operation input instruction is “attackon enemy character” and the attack power or a damage value applied isthe variable parameter, the degree of attack can be determined dependingon the direction of the entire moving path. Therefore, the variations ofthe operation input which can be performed by inputting the moving pathcan be increased, whereby game playability can be increased.

In the method,

a position condition relating to the game controller may bepredetermined for each of the plurality of operation input instructions;

the method may further include determining a position of the gamecontroller based on the acceleration information used to calculate themoving path; and

the determining the operation input instruction may include determiningwhether or not an operation input instruction among the plurality ofoperation input instructions has been issued, the operation inputinstruction being associated with the path reference data conforming tothe calculated moving path and satisfying the position condition withrespect to the determined position of the game controller.

According to the above configuration, various operation inputs can beperformed depending on the position condition of the game controllereven when inputting the same moving path. Specifically, the player canperform various operation inputs even when inputting the same movingpath depending on the position of the game controller with respect tothe player. Since the number of operation inputs can be increasedwithout increasing the number of figure patterns input by the player,game playability can be increased.

The method may further include changing a position of a specific objectin a game space based on the calculated moving path.

According to the above configuration, the position of the specificobject in the game space can be controlled depending on the moving path.Therefore, the difference between the game world and the real world canbe reduced by allowing the player to observe a situation in which themoving path input by the player is used in the game as the movement ofthe object. In particular, when the specific object is part of theplayer character, the player character performs the same movement as theplayer. Therefore, the player is further involved with the playercharacter, whereby the player is involved in the game.

The method may further include displaying an image of the calculatedmoving path.

According to the above configuration, an image of the calculated movingpath can be displayed. The player is further involved with the playercharacter by allowing the player to observe a situation in which themoving path input by the player is used in the game. Moreover, since theplayer can observe the moving path input by the player, the playerattempts to more skillfully move the game controller when the image ofthe moving path displayed differs from the desired moving path, wherebythe player is further involved in the game.

The method may further include:

detecting whether or not an operation input that directs start of themovement of the game controller has been performed; and

detecting whether or not an operation input that directs finish of themovement of the game controller has been performed,

the calculating the moving path may include calculating the moving pathduring a period from detection of the operation input that directs startof the movement of the game controller to detection of the operationinput that directs finish of the movement of the game controller.

According to the above configuration, since the start and finish of themovement can be detected, an erroneous input can be prevented.

In the method, the calculating the moving path may include calculatingthe moving path subject to the condition that a position of the gamecontroller when the operation input that directs start of the movementof the game controller has been detected and a position of the gamecontroller when the operation input that directs finish of the movementof the game controller has been detected satisfy a specific positioncondition.

According to the above configuration, since the condition whereby themovement start position and the movement finish position satisfy aspecific position condition is provided in advance, the movement of theplayer is specified (e.g., the player must move the game controller sothat the movement start position and the movement finish positionsatisfy a specific position condition), whereby a game can be realizedwhich requires operation skill. Therefore, the operation skill of thegame controller, operation accuracy, and operation smoothness can beincorporated in the game instead of merely moving the game controller.This causes the player to intend to improve his skill, whereby interestin the game can be further increased in various ways.

In the method, the calculating the moving path may include calculatingthe moving path subject to the condition that a position of the gamecontroller when the operation input that directs start of the movementof the game controller has been detected is the same as a position ofthe game controller when the operation input that directs finish of themovement of the game controller has been detected.

According to the above configuration, the player must move the gamecontroller so that the movement start position and the movement finishposition coincide. Specifically, since the player must move the gamecontroller so that the moving path is drawn with one stroke, the playercan easily move the game controller so that the game controller drawsthe desired moving path, whereby a relatively inexperienced player canenjoy the game.

In the method, the calculating the moving path may include calculatingthe moving path subject to the condition that 1) a velocity of the gamecontroller when the operation input that directs start of the movementof the game controller has been detected is zero and/or 2) a velocity ofthe game controller when the operation input that directs finish of themovement of the game controller has been detected is zero.

According to the above configuration, the moving path can be more easilycalculated by setting the condition whereby the game controller must bestopped when starting and/or finishing the operation input.

According to a further embodiment of the invention, there is provided aprogram causing a computer to execute one of the above methods.

According to still another embodiment of the invention, there isprovided a computer-readable information storage medium storing theabove program.

Embodiments to which the invention is applied are described below takingan example of executing a role-playing game (RPG) using a consumer gamedevice. Note that the type of game to which the invention may be appliedis not limited to a RPG. Configuration of game device

FIG. 1 is a system configuration diagram illustrative of a configurationexample of a consumer game device according to one embodiment of theinvention. A game device main body 1201 of a consumer game device 1200includes a control unit 1210 provided with a CPU, an image processingLSI, an IC memory, and the like, and readers 1206 and 1208 forinformation storage media such as an optical disk 1202 and a memory card1204. The consumer game device 1200 executes a given video game byreading a game program and various types of setting data from theoptical disk 1202 and the memory card 1204 and causing the control unit1210 to execute various game calculations based on an operation inputperformed using a game controller 1230.

The control unit 1210 includes electric/electronic instruments such asvarious processors, various IC chips, and IC memories, and performscalculations and the like to control each section of the consumer gamedevice 1200. In this embodiment, the control unit 1210 includes acommunication device 1212 which connects with a communication line 1(e.g., Internet, LAN, or WAN) and implements data communication with anexternal device, and a short-distance wireless communication module1214.

The short-distance wireless communication module 1214 receives anoperation input signal transmitted from each game controller 1230 viashort-distance wireless communication. As the short-distance wirelesscommunication, Bluetooth (registered trademark), ultra-wideband (UWB)wireless communication, a wireless LAN, and the like may beappropriately applied.

The game controller 1230 according to this embodiment is generally inthe shape of a stick. A button switch 1232 used for inputting selection,cancellation, timing, and the like and an arrow key 1234 for inputtingforward, backward, left, and right directions are provided on the upperside of the game controller 1230. The game controller 1230 includes acontroller control unit 1236.

The controller control unit 1236 includes electronic/electric elementssuch as an IC chip and an IC memory, a short-distance wirelesscommunication module 1238, and an acceleration sensor 1239.

The acceleration sensor 1239 is an acceleration detector which detectsacceleration along each of three orthogonal axes (Xc axis, Yc axis, andZc axis). In the acceleration sensor 1239 according to this embodiment,the Xc axis is set along the long side direction of the game controller1230, the Yc axis is set along the rightward direction of the gamecontroller 1230, and the Zc axis is set along the upward direction ofthe game controller 1230.

The controller control unit 1236 implements data communication with theshort-distance wireless communication module 1214 of the game devicemain body 1201 through the short-distance wireless communication module1238, and transmits a detection signal of the acceleration detected bythe acceleration sensor 1239 and an operation input signal correspondingto an operation input performed using the button switch 1232 and thearrow key 1234 to the game device main body 1201.

The control unit 1210 of the game device main body 1201 executes arole-playing game (RPG) while generating a game image and game soundbased on the detection signal and the operation input signal receivedfrom the game controller 1230. The game image and the game soundgenerated by the control unit 1210 are output to a video display monitor1220 connected with the game device main body 1201 via a signal cable1209.

FIG. 2 is a schematic diagram showing a game play style according tothis embodiment.

In this embodiment, a player 2 holds the game controller 1230 as if tohold a stick. The player 2 enjoys the game in front of the video displaymonitor 1220 by inputting various operations using the game controller1230 while watching a game image 4 displayed on a display section 1222and listening to game sound such as background music (BGM) and effectsound output from a speaker 1224. The game image 4 displayed isgenerated based on an image obtained by photographing a state in whichan object of a player character 6 operated by the player 2 and an objectof an enemy character 8 are disposed and controlled in terms ofoperation in a game space formed in a three-dimensional virtual spaceusing a virtual camera, for example. In the RPG executed according thisembodiment, the player 2 proceeds with the game while defeating theenemy character 8 using various types of magic by operating the playercharacter 6 (the player character 6 is a wizard in this embodiment). Aspecific hit point is assigned to each enemy character 8. A damage valuedue to attack by the player character 6 is subtracted from the hitpoint. The enemy character is defeated when the hit point has become“0”.

In this embodiment, the player 2 has been informed of a figure patternwhich is a method of causing the player character 6 to practice magic bymeans of a manual or indication during game play. The player 2 can inputa magic operation by moving the hand holding the game controller 1230 todraw a figure pattern such as those shown in FIGS. 3A to 3C.Specifically, the player 2 can input magic practiced by the playercharacter 6 by three-dimensionally moving the game controller 1230(i.e., changing the position of the game controller 1230) to draw afigure pattern. This operation is hereinafter called “magic actuationoperation input”.

FIGS. 4 to 6 are schematic views illustrative of the principle of themagic actuation operation input according to this embodiment. As shownin FIG. 4, the magic actuation operation input according to thisembodiment continues during a period in which the push button 1232 ispressed. The player changes the position of the game controller 1230 bymoving the arm while pressing the push button 1232 so that a magicfigure pattern is drawn by a moving path 10 of the game controller 1230.The player releases the push button 1232 when the player has completelydrawn the figure pattern to finish the operation input.

In this embodiment, the magic figure pattern is set to be atwo-dimensional figure which can be drawn with one stroke, as shown inFIG. 3. Each figure corresponds to a seal which causes magic. Operationinput instructions for different types of magic are associated withrespective figures. When the player performs a magic actuation operationinput, three pieces of advice are given to the player by means of amanual or indication during the game. Specifically, the player isadvised that (a) the input start position and the input finish positionmust be the same, (b) the movement of the game controller 1230 must bestopped at the input finish position, and (c) the inclination of thegame controller 1230 must be kept constant during input as much aspossible (i.e., the game controller 1230 must be moved parallelly).

The control unit 1210 samples accelerations a_(i) (i=0, 1, 2, . . . ,n−1; a represents a three-dimensional vector in the XcYcZc coordinatesystem) detected by the acceleration sensor 1239 in a specific samplingcycle at during a period in which the push button 1232 is pressed, andstores the sampled accelerations a_(i) in the storage medium (e.g., ICmemory) provided therein. The control unit 1210 calculates coordinatepositions p_(i) (i=0, 1, 2, . . . , n+1; p represents three-dimensionalcoordinates in the XcYcZc coordinate system) from the sampledaccelerations a_(i) based on the above-described conditions.

A specific operation is as follows. Specifically, since the accelerationof gravity g is always applied to the game controller 1230, theacceleration a_(i) detected by the acceleration sensor 1239 is aresultant force due to the acceleration of gravity g and the kineticacceleration caused when moving the game controller 1230. Therefore,when the acceleration (true acceleration) due to only the operation ofthe player is referred to as a_(i)-g, a velocity v_(i) (i=0, 1, 2, . . ., n) is expressed by the following equation (1).

$\begin{matrix}\begin{matrix}{v_{1} = {v_{0} + {\Delta \; {t\left( {a_{0} - g} \right)}}}} \\{v_{2} = {{v_{1} + {\Delta \; {t\left( {a_{1} - g} \right)}}} = {v_{0} + {\Delta \; {t\left( {a_{0} + a_{1}} \right)}} - {2\Delta \; {t \cdot g}}}}} \\{\mspace{34mu} \vdots} \\{v_{i} = {v_{0} + {\Delta \; t{\sum\limits_{k = 0}^{i - 1}a_{k}}} - {\Delta \; {t \cdot i \cdot g}}}} \\{\mspace{34mu} \vdots} \\{v_{n} = {v_{0} + {\Delta \; t{\sum\limits_{k = 0}^{n - 1}a_{k}}} - {\Delta \; {t \cdot n \cdot g}}}}\end{matrix} & (1)\end{matrix}$

From the equation (1), the position p_(i) (i=0, 1, 2, . . . , n+1) whichis the position of the game controller 1230 during sampling is expressedby the following equation (2).

$\begin{matrix}\begin{matrix}{p_{1} = {p_{0} + {\Delta \; {t \cdot v_{0}}}}} \\\begin{matrix}{p_{2} = {p_{1} + {\Delta \; {t \cdot v_{1}}}}} \\{= {p_{0} + {\Delta \; {t\left( {v_{0} + v_{1}} \right)}}}} \\{= {p_{0} + {2\Delta \; {t \cdot v_{0}}} + {\Delta \; {t^{2}\left( {a_{0} - g} \right)}}}}\end{matrix} \\{\mspace{34mu} \vdots} \\\begin{matrix}{p_{i} = {p_{0} + {\Delta \; t{\sum\limits_{k = 0}^{i - 1}v_{k}}}}} \\{= {p_{0} + {\Delta \; {t \cdot i \cdot v_{0}}} + {\Delta \; t^{2}{\sum\limits_{k = 0}^{i - 2}\left\lbrack {\left( {i - k - 1} \right)a_{k}} \right\rbrack}} - {\Delta \; t^{2}\frac{\left( {i - 1} \right)i}{2}g}}}\end{matrix} \\{\mspace{34mu} \vdots} \\\begin{matrix}{p_{n + 1} = {p_{0} + {\Delta \; t{\sum\limits_{k = 0}^{n}v_{k}}}}} \\{= {p_{0} + {\Delta \; {t\left( {n + 1} \right)}v_{0}} + {\Delta \; t^{2}{\sum\limits_{k = 0}^{n - 1}\left\lbrack {\left( {n - k} \right)a_{k}} \right\rbrack}} - {\Delta \; t^{2}\frac{n\left( {n + 1} \right)}{2}g}}}\end{matrix}\end{matrix} & (2)\end{matrix}$

When S₁ and S₂ are defined as shown by the following equations (3) and(4), the velocity v_(n) and the position p_(n+1) are expressed by thefollowing equations (5) and (6).

$\begin{matrix}{S_{1} = {\sum\limits_{k = 0}^{n - 1}a_{k}}} & (3) \\{S_{2} = {\sum\limits_{k = 0}^{n - 1}\left\lbrack {\left( {n - k} \right)a_{k}} \right\rbrack}} & (4) \\{v_{n} = {v_{0} + {\Delta \; {tS}_{1}} - {\Delta \; {t \cdot n \cdot g}}}} & (5) \\{p_{n + 1} = {p_{0} + {\Delta \; {t\left( {n + 1} \right)}v_{0}} + {\Delta \; t^{2}S_{2}} - {\Delta \; t^{2}\frac{n\left( {n + 1} \right)}{2}g}}} & (6)\end{matrix}$

In this embodiment, since the conditions include (a) the conditionwhereby the input start position and the input finish position must bethe same and (b) the condition whereby the movement of the gamecontroller 1230 must be stopped at the input finish position, thefollowing equations (7) and (8) are obtained from these conditions.

p₀=p_(n+1)=0  (7)

v_(n)=0  (8)

From the equations (5) to (8), the acceleration of gravity g and theinitial velocity v₀ are expressed by the following equations (9) and(10).

$\begin{matrix}{g = {{\frac{2}{n}S_{1}} - {\frac{2}{n\left( {n + 1} \right)}S_{2}}}} & (9) \\{v_{0} = {\Delta \; {t\left( {S_{1} - {\frac{2}{n + 1}S_{2}}} \right)}}} & (10)\end{matrix}$

Therefore, the positions p_(i) on the moving path 10 can be calculatedin time series by substituting the equations (9) and (10) in theequation (2), as shown in FIG. 5. In FIG. 5, the positions p_(i) thuscalculated are indicated by open circles on the moving path 10 indicatedby a broken line. A moving path function is obtained by calculating anapproximate function (including straight line, spline, and the like) ofall of the positions p_(i).

When the acceleration sensor 1239 has a bias error, since theacceleration detected by the acceleration sensor 1239 always differsfrom the true value by an error e, the true acceleration is (a_(i)-g-e).When applying the definition shown by the following equation, g in theabove equations can be replaced with g′. Specifically, it is unnecessaryto take into account the presence or absence of the bias error.

g′=g+e  (11)

In this embodiment, since the magic figure pattern is a two-dimensionalfigure, an approximate plane 12 (plane in the XcYcZc coordinate system)approximate to the moving path 10 of the game controller 1230 iscalculated, as shown in FIG. 6, in order to process the moving path 10of the game controller 1230 as a two-dimensional figure. In thisembodiment, three or more positions are randomly selected from thepositions p_(i), and a plane function which passes through the selectedpositions is calculated to obtain the approximate plane 12.

A path image 14 is then generated which is the approximate plane 12viewed in a normal direction 13. The path image 14 may be obtained byconnecting each position p_(i) via a straight line, and observing theresulting image in the normal direction. Or, the path image 14 may beobtained by projecting the moving path function onto the approximateplane 12.

When the path image 14 has been obtained, a magic figure pattern mostsimilar to the path image (i.e., figure with the highest degree ofconformity) is determined, whereby the player character 6 can be causedto practice specific magic based on the moving path 10 of the gamecontroller 1230. Specifically, the player can input a magic operationfor the player character 6 by moving the arm so that the game controller1230 draws a magic figure pattern instead of inputting an operation withthe finger such as pressing the button switch or operating the lever.

Functional Block

A functional configuration is described below.

FIG. 7 is a block diagram showing an example of a functionalconfiguration according to this embodiment. As shown in FIG. 7, the gamedevice according to this embodiment includes an operation input section100, a processing section 200, a sound output section 350, an imagedisplay section 360, a communication section 370, and a storage section500.

The operation input section 100 outputs an operation input signal to theprocessing section 200 based on various operation inputs performed by aplayer. In FIG. 1, the game controller 1230 corresponds to the operationinput section 100. The operation input section 100 according to thisembodiment includes an acceleration detection section 102 which detectsaccelerations along three or more axial directions, and a communicationsection 104. The operation input section 100 outputs a detection signalcorresponding to the acceleration detected by the acceleration detectionsection 102 to the processing section 200 together with the operationinput signal via data communication between the communication section104 and the communication section 370.

In FIG. 1, the acceleration sensor 1239 corresponds to the accelerationdetection section 102. The detection method may be appropriatelyselected from a method of detecting a change in capacitance, a method ofdetecting a change in electric resistance using a piezoresistive effector a strain gauge, a method utilizing a change in interference of anoptical fiber, and the like.

The communication section 104 connects with the communication section370 to implement data communication. The communication section 104 isimplemented by a transceiver, a control circuit, and the like. In FIG.1, the short-distance wireless communication module 1238 corresponds tothe communication section 104.

The processing section 200 is implemented by electronic parts such as aprocessor (e.g., CPU), an application specific integrated circuit(ASIC), and an IC memory. The processing section 200 inputs and outputsdata to and from each functional section of the game device 1200including the operation input section 100 and the storage section 500,and controls the operation of the game device 1200 by performing variouscalculations based on a specific program, data, and various signalsinput from the operation input section 100. In FIG. 1, the control unit1210 included in the game device main body 1201 corresponds to theprocessing section 200.

The game calculation section 210 performs game processes. For example,the game calculation section 210 performs a process of disposing variousobjects in a three-dimensional virtual space to form a game space, aprocess of disposing objects of a player character and an enemycharacter in the game space and controlling the positions and posture ofthe objects, an object hit determination process, physical calculations,game result calculations, and various timer processes. The gamecalculation section 210 includes a moving path calculation section 212and an operation input instruction determination section 214.

The moving path calculation section 212 samples the acceleration a_(i)which has occurred when the player has moved the game controller 1230from the detection signal output from the acceleration detection section102, and calculates the position p_(i) from the information relating tothe sampled acceleration a_(i) to generate data relating to the movingpath 10 of the game controller.

The data relating to the moving path includes coordinate data of theposition p_(i), the moving path function which is the approximatefunction of the position p_(i), the approximate plane 12 obtained byapproximating a position group to one plane, and the path image 14 whichindicates a path obtained by converting the three-dimensional movingpath into a two-dimensional plane image.

The operation input instruction determination section 214 determines aninput operation input instruction based on the moving path from the datarelating to the moving path 10 calculated by the moving path calculationsection 212, and executes the determined operation input instructionbased on a variable parameter.

In this embodiment, the operation input instruction determinationsection 214 determines an operation input instruction by matching thepath image with reference patterns provided in advance, selecting onereference pattern with the highest degree of similarity, and selectingthe operation input instruction associated in advance with the referencepattern. The term “operation input instruction” used in this embodimentcorresponds to practicing magic. A damage value (variable parameter)applied to the enemy character due to the magic practiced is changeddepending on parameters such as the orientation (position) and the sizeof the moving path. As the matching method, related art relating topattern matching may be appropriately utilized. Therefore, detaileddescription thereof is omitted.

The sound generation section 250 is implemented by a processor such as adigital signal processor (DSP) and its control program. The soundgeneration section 250 generates sound signals of game-related effectsound, BGM, and operation sound based on the processing results of thegame calculation section 210, and outputs the generated sound signals tothe sound output section 350.

The sound output section 350 is implemented by a device which outputssound such as effect sound and BGM based on the sound signals from thesound generation section 250. In FIG. 1, the speaker 1224 of the videodisplay monitor 1220 corresponds to the sound output section 350.

The image generation section 260 is implemented by a processor such as adigital signal processor (DSP), its control program, a drawing frame ICmemory such as a frame buffer, and the like. The image generationsection 260 generates one game image in frame time ( 1/60 sec) unitsbased on the processing results of the game calculation section 210, andoutputs image signals of the generated game image to the image displaysection 360.

The image display section 360 displays various game images based on theimage signals input from the image generation section 260. The imagedisplay section 360 may be implemented by an image display device suchas a flat panel display, a cathode-ray tube (CRT), a projector, or ahead mount display. In FIG. 1, the display section 1222 of the videodisplay monitor 1220 corresponds to the image display section 360.

The communication control section 270 establishes data communication andtransmits/receives data according to a specific protocol to exchangedata with an external device through the communication section 370.

The communication section 370 connects with the communication line 1(see FIG. 1) to implement communication. The communication section 370is implemented by a transceiver, a modem, a terminal adapter (TA), ajack for a communication cable, a control circuit, and the like. In FIG.1, the communication device 1212 and the short-distance wirelesscommunication module 1214 correspond to the communication section 370.

The storage section 500 stores a system program for implementingfunctions for causing the processing section 200 to integrally controlthe game device 1200, a game program and data necessary for causing theprocessing section 200 to execute the game, and the like. The storagesection 500 is used as a work area for the processing section 200, andtemporarily stores the results of calculations performed by theprocessing section 200 based on various programs, data input from theoperation section 100, and the like. The function of the storage section500 is implemented by an IC memory (e.g., RAM or ROM), a magnetic disk(e.g., hard disk), an optical disk (e.g., CD-ROM or DVD), or the like.

In this embodiment, the storage section 500 stores a system program 501and a game program 502. The game program 502 includes a moving pathcalculation program 504 and an operation input instruction determinationprogram 506. The function of the game calculation section 210 can beimplemented by the processing section 200 by causing the processingsection 200 to read and execute the game program 502. The functions ofthe moving path calculation section 212 and the operation inputinstruction determination section 214 can be implemented by theprocessing section 200 by causing the processing section 200 to read andexecute the moving path calculation program 504 and the operation inputinstruction determination program 506.

The storage section 500 stores game space setting data 520, charactersetting data 522, magic effect setting data 524, reference pattern data526, and damage TBL data 528 as data provided in advance. The storagesection 500 also stores character control data 530, sampling data 532,an input flag 534, and the timer values of various timers as dataappropriately rewritten during the game. The storage section 500 mayalso appropriately store other types of data.

Various types of data for forming the game space in thethree-dimensional virtual space are stored as the game space settingdata 520. For example, the game space setting data 520 includes modeldata and texture data relating to a stationary object (including thesurface of the earth and background) on which the player character 6moves and motion data.

Initial setting data of the player character 6 and the enemy character 8is stored as the character setting data 522. Specifically, the charactersetting data 522 appropriately includes modeling data, texture data, andmotion data of each character object, data relating to the movementpattern of the enemy character, the initial value of the hit pointapplied to the enemy character, and the like.

Data relating to an effect display when the player character 6 practicesmagic is stored as the magic effect setting data 524 while beingassociated with each type of magic. For example, when the magic islightning magic, the magic effect setting data 524 includes an object,texture data, effect sound data, and the like for displaying a state inwhich lightning streaks across the sky.

The reference pattern data 526 defines the magic figure pattern used inthe game and the operation input instruction corresponding to the magicfigure pattern.

FIG. 8 is a data configuration diagram showing an example of the dataconfiguration of the reference pattern data 526 according to thisembodiment. As shown in FIG. 8, reference images 526 a (i.e.,information which defines different types of figure patterns) are storedas the reference pattern data 526 while being associated with differentoperation input instructions 526 b.

The reference image 526 a corresponds to dictionary data for patternmatching with the moving path of the game controller 1230. In thisembodiment, since two-dimensional image pattern matching technology isused, two-dimensional image data is stored as the reference image 526 a.The reference image may be appropriately set depending on the patternmatching technology. In this embodiment, a command which causes theplayer character 6 to practice magic is set as the operation inputinstruction 526 b.

The damage TBL (table) data 528 defines the damage value applied to theenemy character 8 due to magic practiced by the player character 6.

FIG. 9 is a data configuration diagram showing a data configurationexample of the damage TBL data 528 according to this embodiment. Asshown in FIG. 9, a matching evaluation value range 528 b and a damagevalue 528 c are stored as the damage TBL data 528 while being associatedwith an operation input instruction type 528 a corresponding to theoperation input instruction defined by the reference pattern data 526.

The term “matching evaluation value” used herein refers to a valueindicating the degree of similarity (or degree of conformity (degree ofmatching)) between the evaluation target (sample) and the referencepattern (also called “dictionary pattern”) calculated during patternmatching. In this embodiment, the matching evaluation value H iscalculated in the range of 0 to 1.0. The evaluation target is moresimilar to the reference pattern as the matching evaluation value Hincreases. In pattern matching, the degree of similarity between theevaluation target and the reference pattern is evaluated in terms ofshape, and the difference in size between the evaluation target and thereference pattern is not evaluated. Note that the size of the evaluationtarget figure is employed as a coefficient k2 of the damage valueapplied to the enemy character 8. The details are described later.

In the example shown in FIG. 9, the range in which the matchingevaluation value H is 0.3 to 1.0 is divided and defined as the matchingevaluation value range 528 b. In this embodiment, when the matchingevaluation value H is less than 0.3, it is determined that matching hasfailed (i.e., the magic actuation input has failed).

The damage value 528 c is defined as a function of the matchingevaluation value H and coefficients k1 and k2 of the variable parameter.In this embodiment, the first coefficient k1 is defined depending on theangle θa (−180°≦θa≦180°) of the normal direction of the approximateplane 12 around the Zc axis (where the Xc axis direction of theacceleration sensor 1239 is 0°). Specifically, the direction of theentire moving path is represented by the approximate plane 12 and itsnormal direction 13, and the first coefficient k1 is determineddepending on the direction of the entire moving path. The secondcoefficient k2 is defined depending on the ratio of an area obtained byparallelly projecting the moving path 10 in the normal direction 13 to areference area A₀ (e.g., 1000 cm²). Specifically, the second coefficientk2 is determined depending on the size of the entire moving path.

In the example shown in FIG. 9, the first coefficient k1 is set at 1.0when it is determined that the moving path has been drawn along thelateral direction of the game controller 1230, and is set at 2.0 when itis determined that the moving path has been drawn along the verticaldirection of the game controller 1230.

In this embodiment, since the player holds the game controller 1230 asif to hold a stick, when the player moves the game controller 1230 alongthe horizontal direction (Yc-Zc plane direction in FIG. 1), the playercan observe the path from the movement of the game controller 1230 andrelatively easily draw a desired figure pattern. On the other hand, whenthe player moves the game controller 1230 along the vertical direction(Xc-Zc plane direction in FIG. 1), since the moving path is formed alongthe direction parallel to the field of view of the player, it isdifficult for the player to observe the path. As a result, the degree ofdifficulty relatively increases even when drawing the same figurepattern. Therefore, a higher damage value can be applied to the enemycharacter when the player moves the game controller 1230 with a higherdegree of difficulty by decreasing the coefficient k1 in the former caseand increasing the coefficient k1 in the latter case. Specifically,strong magic can be effected by drawing the moving path with a difficultoperation. This causes the player to be further involved in the game.

The second coefficient k2 increases as the player draws a larger path ofthe game controller 1230 so that the damage value applied to the enemycharacter 8 increases. Therefore, the second coefficient k2 has effectssimilar to those of the first coefficient k1.

Data relating to movement control of the player character 6 and theenemy character 8 is stored as the character control data 530. Forexample, the present position coordinates, a hit point, an item, motiondata used, a frame number, and the like may be appropriately set as thecharacter control data 530.

Data relating to the magic actuation operation input is stored as thesampling data 532.

FIG. 10 is a view showing a data configuration example of the samplingdata 532 according to this embodiment. As shown in FIG. 10,accelerations 532 a sampled and stored in time series when the buttonswitch 1232 is pressed, positions 532 b calculated from the sampledaccelerations, a moving path function 532 c which is the approximatefunction of all the positions corresponding to the moving path, anapproximate plane function 532 d of the approximate plane 12 obtained byapproximating the moving path function formula 532 c to one plane, and apath image 532 e are stored as the sampling data 532.

The input flag 534 is a flag indicating that the magic actuationoperation input is being performed. The input flag 534 is set at “0” inthe initial state, and the input flag 534 is set at “1” when the magicactuation operation input has been performed.

Operation

An operation according to this embodiment is described below.

FIG. 11 is a flowchart illustrative of the flow of the process accordingto this embodiment. This process is implemented by causing theprocessing section 200 to read and execute the system program 501 andthe game program 502, and is repeatedly performed in a specific controlcycle. A game image generation process and output process and a gamesound generation process and output process may be appropriatelyperformed in the same manner as in a related-art video game. Therefore,description thereof is omitted.

As shown in FIG. 11, the game calculation section 210 forms a game spacein a three-dimensional virtual space referring to the game space settingdata 520 and the character setting data 522 (step S2), and disposesobjects of the player character 6 and the enemy character 8 and a mainvirtual camera which photographs the player character 6 and the enemycharacter 8 in the formed game space to prepare for game start (stepS4).

When the game has started, the game calculation section 210 performs amoving path calculation process (step S6).

FIG. 12 is a flowchart illustrative of the flow of the moving pathcalculation process according to this embodiment. As shown in FIG. 12,the game calculation section 210 determines whether or not a specificbutton switch is pressed to determine whether or not a magic actuationoperation input start condition is satisfied (step S50). In thisembodiment, the game calculation section 210 determines that the magicactuation operation input is performed when the push button 1232 of thegame controller 1230 is pressed. Therefore, the game calculation section210 determines that the specific button switch is pressed (YES) when thepush button 1232 is pressed.

When the specific button switch is pressed (YES in step S50), the gamecalculation section 210 refers to the input flag 534 which indicateswhether or not the magic actuation operation input is being performed.When the input flag 534 is “0” (“0” in step S52), the game calculationsection 210 sets the input flag 534 at “1” (step S54), and resets thesampling data 532 (step S56). The reset state is determined in advancesuch as setting all the pieces of sampling data 532 at “0”. When theinput flag 534 has been set at “1” (“1” in step S52), the gamecalculation section 210 does not change the input flag 534 and does notreset the sampling data 532.

The game calculation section 210 then acquires the present accelerationof the game controller 1230 at a specific sampling frequency based onthe detection signal from the acceleration detection section 102, andstores the acquired accelerations as the sampling data 532 in timeseries (step S58). The game calculation section 210 may sample theacceleration once when the sampling frequency is the same as the controlcycle of the process flow, and may sample the acceleration a number oftimes when the sampling frequency is sufficiently higher than thecontrol cycle (e.g., frame time intervals such as 1/60 second).

When the game calculation section 210 has determined that the specificbutton switch is not pressed in the step S50 (NO in step S50), the gamecalculation section 210 determines that the player has completed themagic actuation operation input, and sets the input flag 534 at “0”(step S60) without sampling the acceleration.

The game calculation section 210 then determines whether or not theposition p_(i) can be calculated. Specifically, the game calculationsection 210 determines whether or not the input flag 534 is set at “0”(which indicates completion of sampling) and the position 532 b of thesampling data 532 has been reset and has not been calculated (step S62).

When the game calculation section 210 has determined that the input flag534 is set at “0” and the position 532 b of the sampling data 532 hasbeen reset and has not been calculated (YES in step S62), the gamecalculation section 210 calculates all positions p_(i) and stores thecalculated positions p_(i) as the sampling data 532 (step S64). The gamecalculation section 210 calculates a moving path function whichapproximates the calculated positions p_(i), stores the calculatedmoving path function as the sampling data 532 (step S66), and finishesthe moving path calculation process. As the method of calculating themoving path function, a known approximate function calculation methodmay be appropriately utilized.

When the input flag 534 is set at “1” and the operation input has notbeen completed, or all positions p_(i) have been calculated in the stepS62 (YES in step S62), the game calculation section 210 finishes themoving path calculation process without calculating the positions p_(i)and the moving path function.

When the moving path calculation process has been completed, the processreturns to the flow shown in FIG. 11. The game calculation section 210then performs an operation input instruction determination process (stepS8).

FIG. 13 is a flowchart illustrative of the flow of the operation inputinstruction determination process according to this embodiment. As shownin FIG. 13, the game calculation section 210 calculates an approximateplane function of the approximate plane 12, and stores the calculatedapproximate plane function as the sampling data 532 (step S70). Forexample, three positions may be randomly selected from the positionsp_(i) calculated in advance, and a plane function which passes throughthe selected positions may be calculated. Or, positions having themaximum and minimum coordinate values may be extracted with respect toeach of the Xc axis, the Yc axis, and the Zc axis, and the approximateplane may be calculated from the extracted positions.

The game calculation section 210 then generates the path image 14, andstores the generated path image 14 as the sampling data 532 (step S72).For example, when all of the positions p_(i) have a sufficientresolution, points with a specific size may be drawn at a projectionposition in the normal direction 13 of the calculated approximate plane12 to draw the path as a set of points to obtain an image. Or, themoving path function 532 c calculated in advance may be projected ontothe approximate plane 12 in the normal direction 13 to obtain an image.

The game calculation section 210 performs a pattern matching process forthe path image 14 referring to the reference pattern data 526, andselects one reference image 526 a with the highest matching evaluationvalue H (step S74).

When the matching evaluation value H of the selected reference image 526a with the highest degree of similarity is less than 0.3 (NO in stepS76), the game calculation section 210 determines that an input errorhas occurred and the operation input instruction has not been selected(step S78), and finishes the operation input instruction determinationprocess.

When the matching evaluation value H of the reference image 526 a withthe highest degree of similarity is 0.3 or more (YES in step S76), thegame calculation section 210 determines that the operation inputinstruction 526 b associated with the reference image 526 a has beeninput (step S80), and finishes the operation input instructiondetermination process.

When the operation input instruction determination process has beencompleted, the process returns to the flow shown in FIG. 11. The gamecalculation section 210 then moves the position of an object of a magicwand possessed by the player character 6 along the moving path 10 in thegame space so that the player character 6 draws the moving path 10 inthe air using the magic wand (step S10). The game calculation section210 generates an object for displaying the moving path 10, and disposesthe object at the end of the magic wand waved by the player character 6(step S12).

As the object for displaying the moving path 10, an object generated bychanging the luminance of the path image 532 e so that the path image532 e emits light and providing the path image 532 e over a planarpolygon, a strip-shaped polygon model generated by tracing the movingpath function 532 c, or the like may be appropriately set.

The game calculation section 210 then causes the player character 6 topractice magic according to the operation input instruction determinedby the operation input instruction determination process (step S14). Forexample, the game calculation section 210 refers to the magic effectsetting data 524. When the magic is lightning magic, the gamecalculation section 210 causes lightning to streak across the sky andhit the enemy character 8.

The game calculation section 210 the calculates the damage value appliedto the enemy character based on the matching evaluation value H of thereference image with the highest degree of similarity selected in thestep S8 (step S16). Specifically, the game calculation section 210refers to the damage TBL data 528, and selects the range correspondingto the matching evaluation value H from the matching evaluation valuerange 528 b. The game calculation section 210 then refers to theapproximate plane 532 d of the sampling data 532, calculates the angleθa (−180°≦θa≦180°) of the normal direction 13 of the approximate plane12 around the Zc axis (where the Xc axis direction of the accelerationsensor 1239 is 0°), and determines the first coefficient k1corresponding to the angle θa calculated according to the definition ofthe damage TBL data 528 (see FIG. 9). The game calculation section 210refers to the path image 532 e of the sampling data 532, and determinesthe second coefficient k2 depending on the area of the moving path image14 relative to the specific reference area A₀ (see FIG. 9). The gamecalculation section 210 calculates the damage value applied to the enemycharacter 8 according to the definition of the damage value 528 cassociated with the range of the matching evaluation value H selected inadvance.

The game calculation section 210 then performs an enemy characterdamaging process (step S18). In this embodiment, the calculated damagevalue is subtracted from the hit point set for the enemy charactersubjected to the magic attack. When the hit point after subtraction hasreached “0”, it is determined that the enemy character cannot be used(i.e., has been defeated by the player character). The game calculationsection 210 automatically controls the operation of the enemy character8 which can be used (step S20). The game calculation section 210automatically controls operations such as attack on the player character6, recovery from damage, and escape based on a specific thinking routinein the same manner as in a known RPG.

The game calculation section 210 then performs a damaging process forthe player character 6 based on the operation of the enemy character 8(step S22). Specifically, the damage value due to attack by the enemycharacter is subtracted from the hit point of the player character.

The game calculation section 210 then determines whether or not a gamefinish condition has been satisfied (step S24). Since this embodimentemploys an RPG, the game calculation section 210 determines that thegame finish condition has been satisfied when the hit point of theplayer character 6 has reached “0”, or the player character 6 hasdefeated all enemy characters 8, or the player character 6 has acquiredthe desired treasure, for example.

When the game calculation section 210 has determined that the gamefinish condition has not been satisfied (NO in step S24), the gamecalculation section 210 returns to the step S6. When the gamecalculation section 210 has determined that the game finish conditionhas been satisfied (YES in step S24), the game calculation section 210performs a specific game finish process such as displaying an endingimage (step S26), and finishes the process.

FIGS. 14A and 14B are schematic views showing an example of game playaccording to this embodiment. In FIG. 14A, the player character 6 hasencountered the enemy character 8 on the game screen 4. When the player2 moves the game controller 1230 parallelly along the moving path 10indicated by a broken line shown in FIG. 14A so that the game controller1230 draws a magic figure pattern of the desired magic, the game devicemain body 1201 determines that the player 2 has performed the magicactuation operation input for lightning magic based on the moving path10.

As shown in FIG. 14B, the operation of the player character 6 iscontrolled so that the player character 6 draws a figure similar to themoving path 10 using the end of a magic wand 7 and a figure based on thepath image 14 (e.g., a light streak 20 drawn in the air) is displayed,whereby a seal is drawn in the air. The light streak 20 may be formed bychanging the luminance and the color of the path image 14 so that thepath image 14 emits light and providing the path image 14 over a planarpolygon of which the normal direction coincides with the direction of aline segment which connects the player character 6 and the enemycharacter 8. An effect in which the enemy character 8 is struck bylightning 22 is displayed, whereby the enemy character 8 is damaged.

FIGS. 15A and 15B are views showing variations of the magic actuationoperation input according to this embodiment. FIG. 15A shows the case ofperforming the magic actuation operation input by moving the gamecontroller 1230 parallelly along the vertical direction (Xc-Zc plane)instead of the lateral direction (Yc-Zc plane). When the player movesthe game controller 1230 parallelly along the lateral direction, asshown in FIG. 14A, since the player can observe the entire moving pathwithin the field of view, the player can relatively easily draw the pathof the desired figure pattern. On the other hand, when the player movesthe game controller 1230 parallelly along the vertical direction, it isdifficult for the player to observe the moving path since the movingpath is parallel (depth direction) to the line of sight of the player.This makes it difficult for the player to draw the path of the desiredfigure pattern. When the player moves the game controller 1230 in thevertical direction, since the normal direction of the approximate plane12 a of the moving path 10 a almost coincides with the Yc axis(horizontal direction) of the game controller 1230, the angle θa formedby the normal direction of the approximate plane 12 a and the Xc-Zcplane is almost 90° or −90°. The damage TBL data 528 according to thisembodiment is selected so that the first coefficient k1 is set at 2.0,which is larger than that of the state shown in FIG. 14A, whereby thedamage value applied to the enemy character 8 increases (see FIG. 9).Therefore, the enemy can be damaged to a larger extent as the degree ofdifficulty of the input operation becomes higher.

FIG. 15B shows the case of moving the game controller 1230 so that thegame controller 1230 draws a figure (path) larger than that shown inFIG. 14A. In this case, since the player must move the arm to a largeextent, it becomes more difficult to accurately draw the magic figurepattern. In this embodiment, since the second coefficient k2 isdetermined depending on the ratio of the area of the moving path image14 to the specific standard area A₀, the second coefficient k2 in thecase shown in FIG. 15B is larger than that of FIG. 14A. As a result, thedamage value applied to the enemy character 8 increases. Moreover, sincethe size of the path image 14 is increased corresponding to the largemoving path 10 b, the size of the light streak 20 b automaticallydisplayed is also increased. Therefore, the player can easily visuallyidentify that strong magic is effected.

As described above, the player 2 does not operate the game controller1230 using the finger, but causes the player character 6 to performmovement similar to the movement of the player 2. Moreover, since themoving path can be used for operation input merely using theacceleration sensor, the operation input can be realized at low cost andlow calculation load.

The damage value applied to the enemy character can be increased byperforming operation input to draw a path as similar to the referencepattern as possible. Specifically, the player feels that the player'smagic input skill (i.e., skill of moving the controller 1230 as if todraw a seal using the magic wand) is reflected in the damage value. Thisis because the damage caused by the magic increases when the playermoves (moves the controller) to more accurately draw the seal.Therefore, the player can enjoy the game while further involving himselfwith the player character (wizard in this case), while achieving theeffect in which the player can perform operation input by merely movinghis body. Moreover, since the enemy character can be damaged to a largerextent by selecting an input method with a higher degree of difficultywhen drawing a path, the input by movement is provided with complexityand depth, whereby interest in the game can be further increased.

The conditions whereby the position p_(i) is derived from theacceleration sampled during the magic actuation operation input include(a) the condition whereby the input start position and the input finishposition must be the same and (b) the condition whereby the movement ofthe game controller 1230 must be stopped at the input finish position.These conditions apply to the case where a person draws a figure patternin the air by moving the game controller 1230. Specifically, whendrawing a figure pattern, a person naturally imagines the desired figurepattern. Then, he gradually lifts his arm, immediately draws the figurepattern, and stops the movement when he has completely drawn the figurepattern. Therefore, a more natural operation input is enabled by settingthe conditions according to this embodiment, whereby operability can beincreased.

Hardware Configuration

FIG. 16 is a view illustrative of an example of a hardware configurationwhich implements the consumer game device 1200 according to thisembodiment. In the consumer game device 1200, a CPU 1000, a ROM 1002, aRAM 1004, an information storage medium 1006, an image generation IC1008, a sound generation IC 1010, and I/O ports 1012 and 1014 areconnected so that data can be input and output through a system bus1016. A control device 1022 is connected with the I/O port 1012, and acommunication device 1024 is connected with the I/O port 1014.

The CPU 1000 controls the entire device and performs various types ofdata processing based on a program stored in the information storagemedium 1006, a system program (e.g. initialization information of thedevice main body) stored in the ROM 1002, a signal input from thecontrol device 1022, and the like.

The RAM 1004 is a storage section used as a work area for the CPU 1000and the like, and stores given information stored in the informationstorage medium 1006 and the ROM 1002, calculation results of the CPU1000, and the like.

The information storage medium 1006 mainly stores a program, image data,sound data, play data, and the like. As the information storage medium,a memory such as a ROM, a hard disk, a CD-ROM, a DVD, a magnetic disk,an optical disk, or the like is used. The information storage medium1006, the ROM 1002, and the RAM 1004 correspond to the storage section500 shown in FIG. 7.

Sound and an image can be suitably output using the image generation IC1008 and the sound generation IC 1010 provided in the device.

The image generation IC 1008 is an integrated circuit which generatespixel information according to instructions from the CPU 1000 based oninformation transmitted from the ROM 1002, the RAM 1004, the informationstorage medium 1006, and the like. An image signal generated by theimage generation IC 1008 is output to a display device 1018. The displaydevice 1018 is implemented by a CRT, an LCD, an ELD, a plasma display, aprojector, or the like. The display device 1018 corresponds to the imagedisplay section 360 shown in FIG. 7.

The sound generation IC 1010 is an integrated circuit which generates asound signal corresponding to the information stored in the informationstorage medium 1006 and the ROM 1002 and sound data stored in the RAM1004 according to instructions from the CPU 1000. The sound signalgenerated by the sound generation IC 1010 is output from a speaker 1020.The speaker 1020 corresponds to the sound output section 350 shown inFIG. 7.

The control device 1022 is a device which allows the player to input agame operation. The function of the control device 1022 is implementedby hardware such as a lever, a button, and a housing. The control device1022 corresponds to the operation input section 100 shown in FIG. 7.

A communication device 1024 exchanges information utilized in the devicewith the outside. The communication device 1024 is utilized to exchangegiven information corresponding to a program with other devices. Thecommunication device 1024 corresponds to the communication section 370shown in FIG. 7.

The above-described processes such as the game process are implementedby the information storage medium 1006 which stores the game program 502and the like shown in FIG. 7, the CPU 1000, the image generation IC1008, and the sound generation IC 1010 which operate based on theseprograms, and the like. The CPU 1000, the image generation IC 1008, andthe sound generation IC 1010 correspond to the processing section 200shown in FIG. 7. The CPU 1000 mainly corresponds to the game calculationsection 210, the image generation IC 1008 mainly corresponds to theimage generation section 260, and the sound generation IC 1010 mainlycorresponds to the sound generation section 250.

The processes performed by the image generation IC 1008, the soundgeneration IC 1010, and the like may be executed by the CPU 1000, ageneral-purpose DSP, or the like by means of software. In this case, theCPU 1000 corresponds to the processing section 200 shown in FIG. 7.

Although the above description illustrates a configuration in which thevideo game is executed using the consumer game device 1200 as anexample, the game may also be executed using an arcade game device, apersonal computer, a portable game device, and the like.

The embodiments according to the invention have been described above.Note that the application of the invention is not limited to the aboveembodiments. Various modifications and variations may be made withoutdeparting from the spirit and scope of the invention.

First Modification

For example, the above embodiments have been described in which theconditions when calculating the position p_(i) from the sampledacceleration a_(i) include (a) the input start position and the inputfinish position must be the same, (b) the movement of the gamecontroller 1230 must be stopped at the input finish position, and (c)the inclination of the game controller 1230 must be kept constant duringinput as much as possible. Note that the invention is not limitedthereto.

As shown in FIGS. 17A to 17C, the player's operation input of the magicfigure pattern may be specified so that an input start position p_(s)and an input finish position p_(e) are separated at a predetermineddistance, for example. In this case, the moving path can be calculatedby setting (aB) a condition whereby the input finish position must beseparated from the input start position by a specific distance in aspecific direction and (bB) a condition whereby the movement of the gamecontroller 1230 must be stopped at the input finish position asconditions B.

Specifically, the conditions B are expressed by the following equations(12) to (14).

p₀=0  (12)

p_(n+1)=p_(e)  (13)

v_(n)=0  (14)

From the equations (5), (6), and (12) to (14), the acceleration ofgravity g and the initial velocity v₀ are expressed by the followingequations (15) and (16).

$\begin{matrix}{g = {{\frac{2}{n\left( {n + 1} \right)}\frac{p_{e}}{\Delta \; t^{2}}} + {\frac{2}{n}S_{1}} - {\frac{2}{n\left( {n + 1} \right)}S_{2}}}} & (15) \\{v_{0} = {{\frac{2}{n + 1}\frac{p_{e}}{\Delta \; t}} + {\Delta \; {t\left( {S_{1} - {\frac{2}{n + 1}S_{2}}} \right)}}}} & (16)\end{matrix}$

Therefore, the positions p_(i) can be calculated in time series bysubstituting the equations (12), (15), and (16) in the equation (2) inthe above embodiment.

Second Modification

Other conditions may be used provided that the moving path can becalculated. For example, even when specifying the figure pattern inputas shown in FIGS. 17A and 17C, (aC) a condition whereby the input finishposition must be separated from the input start position by a specificdistance in a specific direction and (bC) a condition whereby an inputmust be started in a state in which the movement of the game controller1230 is stopped at the input start position may be set as conditions C.In this case, the conditions C are expressed by the following equations(17) to (19).

p₀=0  (17)

p_(n+1)=p_(e)  (18)

v₀=0  (19)

From the equations (17) to (19), the acceleration of gravity g iscalculated as shown by the following equation (20).

$\begin{matrix}{g = {{{- \frac{2}{n\left( {n + 1} \right)}}\frac{p_{e}}{\Delta \; t^{2}}} + {\frac{2}{n\left( {n + 1} \right)}S_{2}}}} & (20)\end{matrix}$

Therefore, the positions p_(i) can be calculated in time series bysubstituting the equations (17), (19), and (20) in the equation (2) inthe above embodiment.

Third Modification

For example, (aD) a condition whereby an input must be started in astate in which the movement of the game controller 1230 is stopped atthe input start position and (bC) a condition whereby the movement ofthe game controller 1230 must be stopped at the input finish positionmay be set as conditions D. The conditions D are expressed by thefollowing equations (21) and (22).

p₀=0  (21)

v₀=v_(n)=0  (22)

From the equation (5) in the above embodiment and the equation (22), theacceleration of gravity g is calculated as shown by the followingequation (23).

$\begin{matrix}{g = {\frac{1}{n}S_{1}}} & (23)\end{matrix}$

Therefore, the positions p_(i) can be calculated in time series bysubstituting the equations (21) to (23) in the equation (2) in the aboveembodiment.

Other Modifications

The above embodiments have been described taking an example in which theplayer character 6 is controlled to draw the moving path 10 using themagic wand. Note that the invention is not limited thereto. For example,a configuration may also be employed in which a spirit character or acharacter having a magic attribute (e.g., flame character when themoving path corresponds to a flame magic operation input instruction)may appear in the game, and the character draws the moving path 10.

The above embodiments have been described taking an example in whichonly one game controller 1230 is used, Note that two or more gamecontrollers 1230 may be used. In this case, the player plays the gamewhile holding first and second game controllers 1230 respectivelyincluding an identifiable acceleration sensor 1239 with both hands, forexample. The player performs an operation input by moving both hands atthe same time. A first moving path is calculated based on theacceleration detected by the acceleration sensor of the first gamecontroller held with the right hand, and a second moving path iscalculated based on the acceleration detected by the acceleration sensorof the second game controller held with the left hand. A synthesizedmoving path is generated by synthesizing the first moving path and thesecond moving path so that the centers thereof coincide. Or, asynthesized path image is generated by synthesizing the image of thefirst moving path and the image of the second moving path. The operationinput instruction may be determined based on the synthesized moving pathor the synthesized path image. In this case, since a more complicatedand advanced operation input can be performed, the variations of theoperation input can be increased, whereby game operability can befurther increased.

The above embodiments have been described taking an example in which thevariable parameter (coefficient k1) is changed depending on thedirection of the moving path 10 with respect to the game controller 1230using the approximate plane 12 to change the damage value. Anothervariable parameter (coefficient k2) is changed depending on the size ofthe path image 14 to change the damage value. Note that the variableparameters may be appropriately set in another way.

As shown in FIGS. 18A and 18B, an angle θc (−180°≦θc≦180°) formed by areference image 528 b and the path image 14 around the center of theimages is calculated during pattern matching to calculate a thirdcoefficient k3=1.0+|θc|/180°. The damage value 528 c in the aboveembodiments may be further multiplied by the third coefficient k3.Specifically, the coefficient k3 is set at “1.0” when the direction ofthe figure pattern defined by the reference image 528 b is the same asthe direction of the entire moving path, and is set at a value closer to“2.0” as the direction of the figure pattern defined by the referenceimage 528 b differs from the direction of the entire moving path to alarger extent. In the example shown in FIG. 18A, the reference image 528b is a figure pattern in which the upper portion of a circle isdepressed in the shape of the letter V, and a state in which thedepression in the shape of the letter V faces upward is a referenceposition. On the other hand, since the depression in the shape of theletter V of a path image 14 d diagonally faces leftward at an ingle of45°, the third coefficient k3 is set at about 1.25 larger than 1.0. Inthe example shown in FIG. 18B, since a moving path 10 e is inverted withrespect to the reference image 528 b, the third coefficient k3 is set at2.0. Therefore, even when drawing the same figure pattern, a higherdamage value can be obtained by performing movement with a relativelyhigh degree of difficulty (e.g., drawing a moving path in a differentdirection).

The above embodiments have been described taking an example in which thefirst coefficient k1 is calculated based on the angle formed by thenormal direction 13 of the approximate plane 12 and the Xc axis of thegame controller 1230 in order to determine the direction of the entiremoving path. Note that a fourth coefficient k4 may be calculated basedon the relative angle θf (0°≦θf≦180°) formed by the acceleration ofgravity g calculated by the equation (9) in the above embodiments andthe normal direction 13 of the approximate plane 12, and may bemultiplied when calculating the damage value in the same manner as thethird similar coefficient k3. Specifically, the fourth coefficient k4 isset at k4=1+|90°−θf|/90°.

In the example shown in FIG. 19A, the player 2 move the game controllerso that the game controller draws a moving path 10 f overhead. In thiscase, since the acceleration of gravity g is almost opposite to a normaldirection 13 f of an approximate plane 12 f, the fourth coefficient k4is set at 2.0. When the game controller draws a moving path 10 h infront of the player 2, as shown in FIG. 19B, since the angle formed bythe acceleration of gravity g and a normal direction 13 h of anapproximate plane 12 h is about 90°, the fourth coefficient k4 is set at1.0. Therefore, even when drawing the same figure pattern, a higherdamage value can be obtained by performing movement with a relativelyhigh degree of difficulty (e.g., drawing the moving path 10 in adifferent direction (vertical/lateral direction with respect to theplayer)).

Or, different types of magic are effected depending on the relativeangle θf formed by the acceleration of gravity g and the normaldirection 13 f of the approximate plane 12 f.

For example, the condition relating to relative angle θf is associatedwith the reference image 526 a of the reference pattern data 526 as aposture condition of the game controller 1230, and the operation inputinstruction 526 b is defined depending on the condition. In the exampleof FIG. 8, lightning magic is set as the operation input instruction 526b when the condition relating to the relative angle θf is “about 90°”,and another type of operation input (e.g., “call for thunder beast” or“healing magic”) is set when the condition relating to the relativeangle θf is “about 0° or about 180°”, for example. In the step S80 shownin FIG. 13, the relative angle θf is calculated, and whether or not theoperation input instruction 526 b associated with the condition relatingto the relative angle θf associated with the reference image with thehighest degree of similarity of which the calculated relative angle θfcoincides is determined.

According to this configuration, even if the number of figure patternsinput by the player is small, since the player can perform variousoperation inputs by moving the game controller 1230 in various ways withrespect to the body of the player, game playability can be increased.

The method of calculating the normal direction 13 f is not limited tothe method of providing a plane which passes three positions randomlyselected from the positions p_(i) employed in the above embodiments. Forexample, the normal direction 13 f may be calculated by the followingequation (24). a indicates a normal direction vector, and the magnitudeof the normal direction vector corresponds to the area obtained byprojecting the path drawn by the positions p_(i) (i=0, . . . , n+1) ontothe approximate plane 12.

$\begin{matrix}{s = {\frac{1}{2}{\sum\limits_{k = 0}^{n}\left( {p_{k} \times p_{k + 1}} \right)}}} & (24)\end{matrix}$

“×” indicates the outer product of the vector.

Although only some embodiments of the invention have been describedabove in detail, those skilled in the art would readily appreciate thatmany modifications are possible in the embodiments without materiallydeparting from the novel teachings and advantages of the invention.Accordingly, such modifications are intended to be included within thescope of the invention.

1. A method of determining an operation input using a game controllerincluding an acceleration detector, the method comprising: calculating amoving path of the game controller based on acceleration informationdetected by the acceleration detector when a player moves the gamecontroller to change a position of the game controller in a real space;and controlling a process of a game based on the calculated moving path.2. The method as defined in claim 1, the method further including:determining an operation input instruction from a plurality of operationinput instructions based on the calculated moving path; and executing aprocess based on the determined operation input instruction.
 3. Themethod as defined in claim 2, the determining of the operation inputinstruction including: selecting path reference data conforming to thecalculated moving path from a plurality of pieces of path reference datarespectively associated with the plurality of operation inputinstructions; and determining that the operation input instructionassociated with the selected path reference data has been issued.
 4. Themethod as defined in claim 3, each of the plurality of operation inputinstructions being an instruction that directs a predetermined processbased on a given variable parameter; the determining the operation inputinstruction including calculating a degree of conformity between thecalculated moving path and each of the plurality of pieces of pathreference data, and selecting path reference data from the plurality ofpieces of path reference data based on the calculation result; and theexecuting the process including executing the process based on thedetermined operation input instruction while changing the variableparameter depending on the calculated degree of conformity of theselected path reference data.
 5. The method as defined in claim 1, themethod further including executing a process based on a predeterminedoperation input instruction when the calculated moving path coincideswith a predetermined path.
 6. The method as defined in claim 3, each ofthe plurality of operation input instructions being an instruction thatdirects a predetermined process based on a given variable parameter; themethod further including calculating a size of the entire calculatedmoving path; and the executing the process including executing theprocess based on the determined operation input instruction whilechanging the variable parameter depending on the calculated size of theentire moving path.
 7. The method as defined in claim 3, each of theplurality of operation input instructions being an instruction thatdirects a predetermined process based on a given variable parameter; themoving path being calculated by calculating a moving path in athree-dimensional coordinate system based on a direction of the gamecontroller; the method further including determining a direction of theentire moving path from the calculated moving path in thethree-dimensional coordinate system; and the executing the processincluding executing the process based on the determined operation inputinstruction while changing the variable parameter depending on thedetermined direction of the entire moving path.
 8. The method as definedin claim 2, the moving path being calculated by calculating a movingpath in a three-dimensional coordinate system based on a direction ofthe game controller; the method further including determining adirection of the entire moving path from the calculated moving path inthe three-dimensional coordinate system; and the determining theoperation input instruction including determining the operation inputinstruction based on the calculated moving path and the determineddirection of the entire moving path.
 9. The method as defined in claim3, a position condition relating to the game controller beingpredetermined for each of the plurality of operation input instructions;the method further including determining a position of the gamecontroller based on the acceleration information used to calculate themoving path; and the determining the operation input instructionincluding determining whether or not an operation input instructionamong the plurality of operation input instructions has been issued, theoperation input instruction being associated with the path referencedata conforming to the calculated moving path and satisfying theposition condition with respect to the determined position of the gamecontroller.
 10. The method as defined in claim 1, the method furtherincluding changing a position of a specific object in a game space basedon the calculated moving path.
 11. The method as defined in claim 1, themethod further including displaying an image of the calculated movingpath.
 12. The method as defined in claim 1, the method furtherincluding: detecting whether or not an operation input that directsstart of the movement of the game controller has been performed; anddetecting whether or not an operation input that directs finish of themovement of the game controller has been performed, the calculating themoving path including calculating the moving path during a period fromdetection of the operation input that directs start of the movement ofthe game controller to detection of the operation input that directsfinish of the movement of the game controller.
 13. The method as definedin claim 12, the calculating the moving path including calculating themoving path subject to the condition that a position of the gamecontroller when the operation input that directs start of the movementof the game controller has been detected and a position of the gamecontroller when the operation input that directs finish of the movementof the game controller has been detected satisfy a specific positioncondition.
 14. The method as defined in claim 13, the calculating themoving path including calculating the moving path subject to thecondition that a position of the game controller when the operationinput that directs start of the movement of the game controller has beendetected is the same as a position of the game controller when theoperation input that directs finish of the movement of the gamecontroller has been detected.
 15. The method as defined in claim 12, thecalculating the moving path including calculating the moving pathsubject to the condition that 1) a velocity of the game controller whenthe operation input that directs start of the movement of the gamecontroller has been detected is zero and/or 2) a velocity of the gamecontroller when the operation input that directs finish of the movementof the game controller has been detected is zero.
 16. A program causinga computer to execute the method as defined in claim
 1. 17. Acomputer-readable information storage medium storing the program asdefined in claim
 16. 18. A game device comprising: a game controllerincluding an acceleration detector; a moving path calculation sectionthat calculates a moving path of the game controller based onacceleration information detected by the acceleration detector when aplayer moves the game controller to change a position of the gamecontroller in a real space; and a game process control section thatcontrols a process of a game based on the calculated moving path.